Computing environments, such as data centers, frequently employ cloud computing platforms, where “cloud” refers to a collective computing infrastructure that implements a cloud computing paradigm. For example, as per the National Institute of Standards and Technology (NIST Special Publication No. 800-145), cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. Cloud-based data centers are deployed and managed by cloud service providers, who provide a computing environment for customers (tenants) to run their application programs (e.g. business applications or otherwise).
In a cloud-based data center, various disparate types of application workloads share the same underlying resources. Thus, conflicting demands between application service level agreements (SLAs in place between the cloud service providers and tenants) and cloud resource efficiency pose a significant challenge for existing resource scheduling algorithms (schedulers) used by the data center.